#ifndef PROTOCOLOPLANO_H_
#define PROTOCOLOPLANO_H_

#include "Protocolo.h"
#include "Constantes.h"
#include <string>
#include <list>

#define EXITO 1
#define FRACASO 0

#define SEPARADOR "_"
#define IGUAL "="

/*
 * @class ProtocoloPlano
 *
 * @brief Protocolo Plano utilizado para la comunicacion entre la GUI y el modelo.
 *
 */
class ProtocoloPlano : public Protocolo
{
public:
	/**
	* Constructor
	*/
	ProtocoloPlano();

	/**
	 * Dado un dto serializarlo utilizando el protocolo Plano
	 */
	virtual std::string serializar(DTO* dto);

	/**
	 * Dado un string deserializarlo utilizando el protocolo Plano
	 */
	virtual DTO* deserializar(std::string& serializacion);

	virtual ~ProtocoloPlano(){};

private:
	DTOTypes getTipoDTO(std::string& serializacion);
	std::string getOwnerDTO(std::string& serializacion);
};

#endif /* PROTOCOLOPLANO_H_ */
